The present application relates generally to electronic commerce and more particularly to a method and system for providing integrated electronic accounting and bill payment.
With the proliferation of desktop computing devices, such as personal computers, numerous functions which were previously handled manually are now performed electronically. A prime example of such computerization relates to accounting and bill payment. Numerous vendors have developed desktop computing software which can be utilized to maintain accounting records and perform accounting functions.
In a typical accounts payable application, the software can be used to track invoices and print payment checks. In lieu of payment by check, payments could be made via wire transfers by communicating, typically over voice lines, instructions to transfer deposited credited funds of the payor maintained at a financial institute to a deposit account of a payee maintained at another financial institute.
More recently, it has become possible to electronically pay bills by communicating instructions, typically via the Internet, to a financial institute maintaining deposited or credited funds of the payor, or to a financial institute representative. The payments are then made to the payee by the financial institute or its representative. Funds from the payor""s deposit or credit account are debited by the financial institute to cover the payment. The payment by the financial institute or its representative to the payee can be made in any number of ways.
For example, the financial institute or representative may electronically transfer funds from the payor account to the payee account, may electronically transfer funds from a financial institute/representative account, e.g. a payment funds account, to the payee account, may prepare a paper draft on the financial institute/representative account and mail it to the payee, may prepare an electronically printed paper check on the payor""s account and mail it to the payee, or may make a wire transfer from either the financial institute/representative account or payor account. If the funds transferred to the payee are drawn from the financial institute/representative account, funds from the payee account are electronically or otherwise transferred by the financial institute to the financial institute/representative account to cover the payment. Further, if the payment will be made from funds in the financial institute/representative account, the payment will preferably be consolidated with payments being made to the same payee on behave of other payors.
Accordingly, such electronic bill payment systems eliminate the need for a payor to write or print paper checks and then forward them by mail to the payee. This makes it easier and more efficient for the payor to make payments. Payees receiving consolidated payments, will no longer have to deal with checks from each payee and therefore can process payments more efficiently. The making of payments by the electronic transfer of funds provides even further efficiencies in payment processing by payees. It has become well recognized that making payments electronically can significantly reduce the cost of processing payments for both the payor and payee.
Because electronic bill payment services are generally provided by other than providers of accounts payable software, to pay bills electronically a payor must somehow transfer data output from the particular accounting software application being utilized to the electronic bill payment system. One way to do this is to manually input data generated by the accounting software application to the electronic bill payment system. Manual transfer is a tedious and error prone process.
Another alternative is to develop specialized software to electronically transfer the data generated by the accounting software application to the electronic bill payment system in order to seamlessly provide for electronic payments based upon information generated by accounts payable software. Hence, it has been proposed to supplement existing accounts payable software with an export utility which can translate payment data generated under the direction of the accounting software so that it can be processed by an electronic bill payment system.
To implement this proposal, it is necessary to send the vendor, payment and perhaps other files, which exists in the database of the accounts payable system, from the accounts payable system to the electronic bill payment system. These files include information such as payment dates, payment amounts and remittance information detailing how the payment is to be applied, e.g. references to multiple invoice numbers, multiple invoice amounts, discount amounts, adjustments etc., which is required for electronic bill payment.
Hence, it has been proposed to program electronic bill payment systems to perform a database query on a new database created with using the data output from the applicable accounts payable system and to import the above files from this new database for use in performing electronic bill payment processing. However, this will require that the user create and store the files which include the information required by the electronic bill payment system so as to be importable and used by the applicable electronic bill payment system. This in turn will require users to modify their current procedures. Developing specialized software can be expensive. Moreover, because each electronic accounting system typically outputs differently structured data and each electronic payment system typically requires differently structured data, any software developed to create and store data in the developed database will be useless if the user wishes to switch accounting software applications or electronic bill payment systems.
To avoid requiring procedural changes by users and the other problems mentioned above, it has been further proposed to program the electronic bill payment system to enter the pre-existing database files of the accounts payable system and import the necessary information. In view of the numerous different types of accounts payable software applications currently in use, this would require that the electronic bill payment system have specialized instructions for accessing the files in the differently structured databases of each type of accounts payable system. Hence, the implementation of this proposal would at best be very cumbersome and is likely to be prone to errors and anomalies in operation.
Accordingly, a need remains for a technique which will allow the practical integration of accounting and electronic bill payment systems.
It is therefore and object of the present invention to provide integrated electronic accounting and bill payment.
Additional objects, advantages, novel features of the present invention will become apparent to those skilled in the art from this disclosure, including the following detailed description, as well as by practice of the invention. While the invention is described below with reference to preferred embodiment(s), it should be understood that the invention is not limited thereto. Those of ordinary skill in the art having access to the teachings herein will recognize additional implementations, modifications, and embodiments, as well as other fields of use, which are within the scope of the invention as disclosed and claimed herein and with respect to which the invention could be of significant utility.
In accordance with the present invention, a system is provided for electronically paying bills using data generated by any of multiple different programmed accounting instructions, i.e. different accounting software packages, where the data generated by each of the programmed accounting instructions has a different structure. The system may, for example, be a programmed personal computer (PC) or workstation. The system includes a processor and a floppy or hard disk, compact disk (CD) and/or other type local or networked memory, for storing one or more of the different programmed accounting instructions. That is, the memory stores respective rules for one, some or all of the different accounting instructions that could be used to generate the data needed for electronically paying bills. The memory also stores programmed mapping instructions and programmed import instructions. The programmed mapping instructions include respective rules associated with each of the stored accounting instructions.
The processor, in accordance with particular programmed accounting instructions stored in memory, generates structured accounting data for making payment on one or more bills. The structured accounting data includes data corresponding to a payee name, a payee address, an invoice number(s), an invoice amount(s), and typically other data, as is well understood in the art.
The processor, applies the stored rules associated with the applicable accounting instructions to extract the data corresponding to the payee name, the payee address, the invoice number(s) and the invoice amount(s) from the structured data. Other data required making payments of bills will also be extracted. Beneficially, the rules associated with each of the programmed accounting instructions identify locations of the data corresponding to the payee name, the payee address, the invoice number(s) the invoice amount(s), and other desired information within the structured data generated in accordance with the applicable accounting instructions. In such case, the processor extracts the desired data based upon its location within the structured data.
Conventional programmed accounting instructions typically include instructions for printing checks using the generated structured accounting data. Hence, a user may input a print command, and the system processor, in accordance with the applicable instructions, will direct the structured data to a designated printer for printing as a properly formatted check drawn against the user""s account at a financial institute. The check can then be sent, typically by mail, to the payee.
In a particularly advantageous implementation of the present invention, the locations from which the desired data are extracted are those at which the data would appear on a check printed in accordance with the applicable accounting instructions. More specifically, the processor, in accordance with the mapping instructions, provides a xe2x80x9cvirtual printerxe2x80x9d option which can be selected by the user, typically using a keyboard, mouse or other input device. Hence, the processor can receive a command representing the selection of the real printer or the xe2x80x9cvirtual printerxe2x80x9d.
If the user selects the real printer option, the print function is performed in accordance with the applicable accounting instructions. However, if the xe2x80x9cvirtual printerxe2x80x9d option is selected, the processor begins performance of the electronic bill processing function. In the later case, the processor, in accordance with the rules associated with the applicable accounting instructions, extracts the data as described above.
The locations from which the data is extracted may be identified by the X-Y coordinates that define the areas in which the data corresponding to the payee name, the payee address, the invoice number(s) and the invoice amount(s) would appear on a check printed in accordance with the structured data. If desired, the mapping instructions can be implemented so as to cause the processor to perform both the print function and electronic bill payment function responsive to selection of the xe2x80x9cvirtual printerxe2x80x9d. However, in such a case, the printed check will serve only as a hard copy record of the electronic payment.
The processor, in accordance with the programmed import instructions, stores, in the memory, a database having a representation of the extracted data corresponding to the payee name at a first location, a representation of the extracted data corresponding to the payee address at a second location, a representation of the extracted data corresponding to the invoice number(s) at a third location, and a representation of the extracted data corresponding to the invoice amount(s) at a fourth location. The type of data determines the location where the representation of that data is stored in the database, notwithstanding the particular programmed accounting instructions which were used to generate the data.
For example, prior to storing the extracted data, the processor may map the extracted data such that the extracted data corresponding to the payee name is identified as first type data, the extracted data corresponding to the payee address is identified as second type data, the extracted data corresponding to the invoice number(s) is identified as third type data, and the extracted data corresponding to the invoice amount(s) is identified as fourth type data. In such a case, each of the representations of the extracted data is then stored at a respective location in the database based upon its identification as a particular type of data.
The processor transmits the database to an electronic bill payment processor, typically a network server located elsewhere on the network, for processing the representations of the extracted data to electronically pay the bill. The electronic bill payment processor is configured to read the representations of the extracted data from the transmitted database and process these representations to electronically process payment of the invoice amount(s).
To obtain further efficiency, the memory preferably stores multiple digital signatures, each corresponding to a different payee name and address. The processor, in accordance with the programmed import instructions, forms a digital signature using the extracted data corresponding to the payee name and the extracted data corresponding to the payee address. By comparing the formed digital signature to the stored digital signatures, the processor can determine if the formed digital signature matches one of the stored digital signatures. If not, the processor, in accordance with the import instructions, stores the formed digital signature as part of the stored multiple digital signatures. If a match is found, the processing continues using the previously stored digital signature or other associated data as will be further described below.
The processor, in accordance with the programmed import instructions, may also store, in the memory, a reduced character representation of the extracted data corresponding to the payee name and/or the payee address in association with the digital signature. This may, for example, be necessary to conform the applicable extracted data to the bit length requirements of the electronic bill payment processor for the particular extracted data type. Preferably, each reduced character representation is first generated by the processor in accordance with the import instructions and then displayed to the user for acceptance or modification. If a matched digital signature has an associated reduced character representation, the processor, in accordance with the import instructions, retrieves the reduced character representation from the memory and stores it as the representation of the applicable extracted data at the proper location in the database. In such a case, the reduced character representation of the extracted data, rather than full length data, corresponding to the payee name and/or the payee address is transmitted to the electronic bill payment processor.
It will be recognized that, if so desired, the mapping instructions and the import instructions could be stored on a networked memory accessible via a network server, such as one which processes electronic bill payments, rather than on local memory at individual client stations. In such a case, the structured accounting data would be directed by the client processor to the server. The server would then extract data, store a representation of the extracted data in the database, and perform the other functions as described above. Hence, it should be understood that the above-described processor could be multiple processors and the above-described memory could be memory associated with multiple processors. I should also be recognized that the above-described functions could be split between different processors in any number of ways.
In one practical implementation, each of a number of client stations store the rules associated with multiple different programmed accounting instructions. One of the client stations generates, in accordance with first programmed accounting instructions, first accounting data having a first structure. The station retrieves the respective rules associated with the first programmed accounting instructions from its associated memory and extracts the data corresponding to the payee name, payee address, first invoice number(s) and first invoice amount(s) from the structured first data by applying the retrieved rules.
The station then maps the extracted data such that the extracted data corresponding to the payee name is identified as first type data, the extracted data corresponding to the payee address is identified as second type data, the extracted data corresponding to the first invoice number(s) is identified as third type data, and the extracted data corresponding to the first invoice amount(s) is identified as fourth type data. The station directs the storage of a representation of the extracted data corresponding to the payee name in a first database at a first location based upon such data being identified as the first type data, of a representation of the extracted data corresponding to the payee address in the first database at a second location based upon such data being identified as the second type data, of a representation of the extracted data corresponding to the first invoice number(s) in the first database at a third location based upon such data being identified as the third type data, and of a representation of the extracted data corresponding to the first invoice amount(s) in the first database at a fourth location based upon such data being identified as the fourth type data.
Another of the client stations generates second data having a second structure, in accordance with second programmed accounting instructions. The second structure is different than the first structure. This station retrieves, from its associated memory, the respective rules associated with the second programmed accounting instructions, and extracts the data corresponding to the same payee name, the same payee address, second invoice number(s) and second invoice amount(s) from the structured second data by applying the retrieved rules associated with the second programmed accounting instructions.
This other station then maps the extracted data such that the extracted second data corresponding to the payee name is identified as first type data, the extracted data corresponding to the payee address is identified as second type data, the extracted data corresponding to the second invoice number(s) is identified as third type invoice number data, and the extracted data corresponding to the second invoice amount(s) is identified as fourth type data. The station next directs the storage of a representation of the extracted data corresponding to the payee name in a second database at the first location based upon such data being identified as the first type data, of a representation of the extracted data corresponding to the payee address in the second database at the second location based upon such data being identified as the second type data, of a representation of the extracted data corresponding to the second invoice number(s) in the second database at the third location based upon such data being identified as the third type data, and of a representation of the extracted data corresponding to the second invoice amount(s) in the database at the fourth location based upon such data being identified as the fourth type data.
A bill payment server, which is typically interconnected to the client stations by a public network, such as the Internet, reads the representations of the extracted data at the first, second, third and fourth locations from the first database and the representations of the extracted data at these same locations from the second database. The server then processes the read representations to electronically direct a single payment, which includes the first and the second invoice amounts, to the named payee at the designated payee address.
Preferably, each client station includes a user-input device for receiving a user printer selection, i.e. a selection representing a real printer or a xe2x80x9cvirtual printerxe2x80x9d. Each client station extracts the data, maps the extracted data, and directs storage of the representations of the extracted data responsive to the user selection of the xe2x80x9cvirtual printerxe2x80x9d.
Each client station""s associate memory preferably stores multiple digital signatures respectively corresponding to a different payee name and address. Each client station""s associate memory may also beneficially store a reduced character representation of the extracted data payee name data and/or the extracted payee address data in association with one or more of the stored digital signatures. It should be noted that each of the reduced character representations associated with the identical digital signatures stored in the memories of different client stations may be different.